package top.goldenyear.porpoise.system.setting.service;

import top.goldenyear.porpoise.system.setting.dto.DictItemDto;

import java.util.Collection;
import java.util.List;

/**
 * 字典数据 API 接口
 *
 * @author Airhead
 */
public interface IDictItemService {

  /**
   * 校验字典数据们是否有效。如下情况，视为无效： 1. 字典数据不存在 2. 字典数据被禁用
   *
   * @param dictCode 字典类型
   * @param values 字典数据值的数组
   */
  void validateDictDataList(String dictCode, Collection<String> values);

  /**
   * 获得指定的字典数据，从缓存中
   *
   * @param dictCode 字典类型
   * @param value 字典数据值
   * @return 字典数据
   */
  DictItemDto getDictItem(String dictCode, String value);

  /**
   * 解析获得指定的字典数据，从缓存中
   *
   * @param dictCode 字典类型
   * @param name 字典数据标签
   * @return 字典数据
   */
  DictItemDto parseDictItem(String dictCode, String name);

  /**
   * 获得指定的字典数据项，从缓存中
   *
   * @param dictCode
   * @return
   */
  List<DictItemDto> getDictItemList(String dictCode);
}
